The addressable and displayable basic element used to build up a computer image is a pixel. Each pixel has several essential parameters stored as the pixel's vertex data. Typical parameters are position data, such as an X coordinate, a Y coordinate and a Z coordinate, that indicate the pixel's reference position in three dimensions (3D); color information, such as diffuse color parameters (RD, GD, BD, A) and specular color parameters (RS, GS, BS, F) which form the pixel's diffuse color and specular color; texture information, such as the pixel's texture pattern and the depth of the pattern from the viewer; or any other suitable information needed by the specific individual application. Based on the graphic standards used by an application, parameters may be stored in different orders or formats within the vertex data. For example, coordinate parameters may be stored as 32-bit floating-point format or fixed-point format. The color information parameters may be stored as a simple group of 4 bytes or as a complicated group of 16 bytes. The graphic device displays the pixel based on its vertex data parameters.
Typical image display systems by using hardware and software have automated several primitive draw functions. For example as shown in FIG. 1a, to draw a line, the application needs to provide only the beginning pixel point A 10 (X1, Y1, Z1) and the ending pixel point B 12 (X2, Y2, Z2) to the graphic device 9. The graphic device 9 determines which pixels are on the line between pixel A 10 and pixel B 12. Subsequently, the graphic device 9 sets up these pixels' color information using the A and B pixels' color parameters. If the application wants to move the line to a new location, the new positions of A 10 will be A′ 14 (X1+a, Y+b, Z1) and B 12 will be B′ 16(X2+a, Y2+b, Z2). If a scaling factor c is involved, the new A′ 14 pixel will be (x1*c+a, y2*c+b, z2) and B′ 16 will be (X2*c+a, Y2*c+b, Z2).
The same principle applies to drawing a triangle, another primitive function. An application provides vertex data that has parameters of the three triangle end points. The graphic device 9 will set up the vertex data of all relevant pixels to draw the triangle. All two dimensional (2D) or 3D graphic objects are made up of a number of polygons which can be broken into primitive functions, such as lines, triangles etc. To redraw 2D or 3D graphic objects requires redrawing the relevant primitives. The redrawing requires setting up all corresponding pixels' vertex data and redrawing them. All graphic operations, simple or complicated, are performed by manipulating the contents of pixel vertex data by multiplication, addition or logical operations, such as OR and exclusive OR.
Users of personal computers or game systems utilize real-time effects on displayed images. In such systems, a 2D or 3D image is displayed at a rate of 30 or more frames per second. These rates allow the user to perceive continuous motion of objects in a scene. To achieve such a real-time, realistic and interactive image requires a tremendous amount of processing power. These effects require processing over a million graphic primitives per second. Typically, processing a million primitives requires multiplying and adding millions of floating-point and fixed-point values.
Accordingly, it is desirable to improve the efficiency of transforming vertex data.